package uds.data;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

/* Classe permettant de définir la strcutre des tables de la base de données et de créer
 * cette structure au premier lancement de l'application 
*/

public class StructureBaseSQL extends SQLiteOpenHelper 
{
	// Nom de la table de la base de données
	private static final String TABLE_POI = "table_poi";
	// Noms des colonnes de la base de données
	private static final String COL_CLES = "id_base";
	private static final String COL_ID = "id";
	private static final String COL_NAME = "name";
	private static final String COL_LATITUDE = "latitude";
	private static final String COL_LONGITUDE = "longitude";
	private static final String COL_FLOOR = "floor";
	private static final String COL_TYPE = "type";
	private static final String COL_DESCRIPTION = "description";
	private static final String COL_URL = "url";
	private static final String COL_URLS_IMAGES = "urls_image";
	private static final String COL_TAGS = "tags";
	private static final String COL_HISTORIC = "historic";
	private static final String COL_RELATED_TO_POI = "related_to_poi";
	
	// Requête permettant de créer la table de la base de données
	private static final String CREATE_BDD = "CREATE TABLE " + TABLE_POI + " ("
			+ COL_CLES + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
			+ COL_ID + " TEXT NOT NULL, "
			+ COL_NAME + " TEXT NULL, "
			+ COL_LATITUDE + " TEXT NULL, " 
			+ COL_LONGITUDE + " TEXT NULL, " 
			+ COL_FLOOR + " TEXT NULL, "
			+ COL_TYPE + " TEXT NULL, "
			+ COL_DESCRIPTION + " TEXT NULL, "
			+ COL_URL + " TEXT NULL, "
			+ COL_URLS_IMAGES + " TEXT NULL, "
			+ COL_TAGS + " TEXT NULL, "
			+ COL_HISTORIC + " TEXT NULL, "
			+ COL_RELATED_TO_POI + " TEXT NULL"
			+ ");";
	
	// Constructeurs permettant d'initialiser la structure de la base de données
	public StructureBaseSQL(Context context, String name, CursorFactory factory, int version) 
	{
		super(context, name, factory, version);
	}

	// Actions à exécuter lors de la création de la base de données
	@Override
	public void onCreate(SQLiteDatabase db) 
	{
		System.out.println("Création de la base de données !");
		db.execSQL(CREATE_BDD);
	}

	// Actions à exécuter lors de la modification de la base de données (quand une nouvelle version se met en place)
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
	{
		db.execSQL("DROP TABLE " + TABLE_POI + ";");
		onCreate(db);
	}
}
